跳到主要内容

颜色选择器 ColorPicker

颜色选择器提供了一个带 RGB 滑块和预览框的交互式取色面板。它非常适合需要让用户自定义颜色的场景,例如主题配置、材质颜色、画笔颜色等。

函数原型

bool ColorPicker(const HXString &id, ColorPickerProfile &profile);

参数说明

参数类型说明
idconst HXString &唯一标识符,用于状态持久化。
profileColorPickerProfile &颜色选择器的配置与状态。

返回值

类型说明
booltrue —— 当前帧颜色值发生了变化。
false —— 颜色未变化。

ColorPickerProfile 结构体

struct ColorPickerProfile {
HXColor Color = {255, 255, 255, 255};
HXPoint Size = {180, 220};
HXColor CursorColor{255, 255, 255, 255};
HXColor PreviewBorderColor{200, 200, 200, 255};

// 内部状态,请勿手动修改
struct {
SliderProfile1f R{};
SliderProfile1f G{};
SliderProfile1f B{};
float r = 255, g = 255, b = 255;
} _internal;
};
字段类型默认值说明
ColorHXColor{255,255,255,255}当前选中的颜色(RGBA)。
SizeHXPoint{180,220}选择器的整体尺寸。
CursorColorHXColor{255,255,255,255}滑块光标颜色。
PreviewBorderColorHXColor{200,200,200,255}预览框边框颜色。

使用示例

static HX::ColorPickerProfile cp;
HX::ColorPicker(HXStr("mycolor"), cp);

// 使用选中的颜色
HX::Text(HXStr("当前颜色") + HX::ToHXString(cp.Color.R) + L"," + ...);
提示

颜色选择器内部使用了三个 Slider1f 来分别控制 R、G、B 通道。如果你需要更精细的控制(例如加入 Alpha 通道或 HSV 模式),可以自行组合 Slider 实现。

运行效果

截图占位符:请补充 $name 控件的运行效果截图。

截图占位符:请补充 颜色选择器 ColorPicker 运行效果 的运行效果截图,保存为 ./assets/颜色选择器 ColorPicker_view.png。`n